;(function() {
	var methods = {
	getSearchFilter : function (){
		var searchWidget = $(this).find('.search-item'), filters = [],
		value = null,propertyPath = null,filterType = null;
		searchWidget.each(function() {
		propertyPath = $(this).attr("name");
		filterType = $(this).attr("filterType");
		switch ($(this).attr('type')) {
		case 'text':
		case 'textarea':
			value = $(this).val();
			if (mtdl.isBlank(value)) {
				return;
			}
			value = mtdl.trim(value);
			break;
		case 'checkbox':
			value = $(this).val();
			break;
		case 'select':
		case 'treeselect':
			value = $(this).val();
			if (mtdl.isBlank(value)) {
				return;
			}
			break;
		case 'radiogroup':
			value = $(this).val();
			if (mtdl.isBlank(value)) {
				return;
			}
			break;
		case 'datepicker':
			value = $(this).find('input[type=hidden]').val();
			if (mtdl.isBlank(value)) {
				return;
			}
			break;
		default:				
			throw new Error('Unsupported.');
		}
//		subPropertyPath = $(this).attr('data-property-path').split(',');
//		if (subPropertyPath.length == 1) {
//			filters.push({
//				value: value,
//				propertyPath: subPropertyPath[0],
//				type: $(this).attr('data-filter-type'),
//				operator: $(this).attr('data-operator')
//			});
//		} else {
//			subFilters = [], jlen = subPropertyPath.length;
//			for (j = 0; j < jlen; j++) {
//				subFilters.push({
//					value: value,
//					propertyPath: subPropertyPath[j],
//					type: $(this).attr('data-filter-type'),
//					operator: $(this).attr('data-operator')
//				});
//			}
//			filters.push({
//				type: 'GROUP',
//				subFilters: subFilters
//			})
//		}
		filters.push({
			value : value,
			propertyPath : propertyPath,
			type : filterType
		});
	});
	return filters;
	}
}
	
	// 方法入口
	$.fn.standardSearchAPI = function() {
		var method = arguments[0];
 
		if (methods[method]) {
			method = methods[method];
			arguments = Array.prototype.slice.call(arguments, 1);
		} else {
			$.error('Method ' + method + ' does not exist on jQuery.standardSearchAPI');
			return this;
		}
 
		return method.apply(this, arguments);
	}
})();